With the increased proliferation of data processing devices and with increased availability of computer networks for data exchange an increasing number of services can now be obtained using home computer equipment or similar.
Generally, the provision of a service via a computer network requires a transmission device or server for transmitting data pertaining to the service and requires a receiving device or client for receiving the data from the server. A user operating the receiving device may then appropriately take notice of the received data, e.g. view the received data on a display, or listen to audio data. Interactive services enable a user to control the service provision via entering information at the client for transmission to the server, enabling the server to appropriately configure the service provision.
A service provided over a computer network may require the exchange of substantial amounts of data, for example image or audio data, and, as the network bandwidth is generally limited, data compression or coding techniques have been developed. These techniques reduce the amount of data to be transmitted via the network, preferably without substantially degrading the quality of the data obtained at the receiver. Many data compression techniques for image data, including video, and audio data are available today.
One group of services available over computer networks includes the transmission of data streams from a transmitting device to a receiving device. The data stream may incorporate a sequence of images, such as a video sequence, or may incorporate audio data, or both. For example, a user at a client computer device may obtain a steaming service by appropriately selecting an offered data stream, e.g. by clicking on a corresponding icon on a browser screen. The user could view a browser page on the client display including for example a selection of text elements accompanied by a tag offering a corresponding video. The user can then select a desired tag and a selection instruction will be transmitted to a server, requesting the server to initiate transmission of a corresponding video data stream to the client device. The client device in turn will display the video sequence.
As a data stream usually contains a large amount of data to be transmitted under relatively strict time constrains, e.g. for maintaining real time requirements, efficient data compression techniques or codecs are required.
Streaming applications generally involve the use of predictive coding. A data stream is usually formed by the sequential transmission of a number of data elements, each of the data elements representing a portion of the information to be steamed to the receiving device. Predictive coding includes any data compression or coding technique, where at least some of the data elements refer to or require information transmitted in another data element. A data element requiring information from another data element can therefore be decompressed at the receiving device only to full extent, if the required further data element or data elements are available at the receiving device. For example, predictive coding may include a statistical estimation procedure where future random variables of the data stream are estimated or predicted from past and present observable random variables.
Streaming applications between computers may be hampered by a lack of service support. Generally it is difficult to reserve a bandwidth, e.g. on a computer network, for the streaming application and for this reason a transmitting device may be unable to transmit the complete streaming information to the receiving device in a timely manner. If not all data elements of the streaming application can be transmitted in a timely manner to the receiving device, a video, audio or other data stream may be interrupted or fully terminated.
It is therefore required to appropriately scale down a required bandwidth for the data steam transmission while accepting a more or less severe reduction of the quality of the stream but avoiding dropouts or termination of services.
One approach to scale the required bandwidth of a data stream is stream switching was proposed in “Video coding for multiple target audiences” by A. Lipman in Proc. Visual Communications and Image Processing, San José, Calif., USA, January 1999, pages 780-782. Here a server dynamically switches between different streams representing the same video stream in different qualities and thus with different bandwidth requirements. However, the granularity of the adjustment is coarse and a large number of streams must be stored.
A block-based hybrid video coder capable of providing a more granular scalability by supporting spatial, signal to noise and temporal scalability and combined methods are described in reference to M. Domanski, S. Mackowia, “Modified mpeg-2 video coders with efficient multi-layer scalability”, in Proc. IEEE International Conference on Image Processing, (ICIP 2001), Thessaloniki, October 2001, pp. 1003-36. Here, a video stream is subdivided into several layers of increasing detail and the number of transmitted layers can be varied. However, the overhead may not be acceptable.
A further concept to adaptively reduce a bandwidth requirement of a data stream is proposed in reference S. Kang and A Zakhor, “Packet scheduling algorithm for wireless video streaming” in Proc. Of the 12th Packet Video Workshop 2002, Pittsburgh, Pa., April 2002. In this concept the dependencies between individual frames constituting the data stream are taken into account, and, frames depending on a reference frame, which was not transmitted, are dropped.
Another concept for adapted bandwidth reduction was proposed in P. Chou and Z. Miao, “Rate-distortion optimised streaming of packetized media,” Microsoft Research, Techn. Rep. MSR-TR-2001-35, February 2001, optimising a peak signal to noise ratio of a video stream by dynamically assigning priority values to frames constituting the data stream and therefore quantifying the importance.
However, none of the above yields satisfactory results under all operating conditions.